File:of Tape: Original/Originals/m1
(Source file text)
/WRITTEN OUT AS PART OF RECORD 0. WHEN THE 30 WORD /BOOTSTRAP IS USED, THIS CODE GETS READ INTO 7400. SDSS=6771 SDST=6772 SDSQ=6773 SDLC=6774 SDLD=6775 SDRC=6776 SDRD=6777 TDBOOT, TAD K7600 /128 WORDS PER PAGE DCA TDWCT SDSS /WAIT FOR A BLOCK MARK (TAPE IS JMP .-1 /STILL MOVING) SDRC AND TD77 TAD KM26 /IS IT A BLOCK MARK? SZA CLA JMP TDBOOT+2 /NO..WAIT A WHILE LONGER SDRD /GET THE BLOCK NO. TDBKNO, TAD TDM14 /NEED BLOCKS 14&15 (REC. 6) SZA CLA JMP TDBOOT+2 /NOT YET, BUSTER TDRGRD, SDSS JMP .-1 /NOW LET'S LOOK FOR A REVERSE GUARD WORD SDRC AND TD77 TAD KM32 SZA CLA JMP TDRGRD /KEEP LOOKING FOR IT JMS TDRQD JMS TDRQD JMS TDRQD /SKIP CONTROL WORDS CDF 10 /LOAD UP FIELD 1 TDREAD, JMS TDRQD /GET A DATA WORD DCA I TDPTR ISZ TDPTR /ARE WE DONE? JMP TDREAD /NOT YET ISZ TDBKNO /YES..LOOK AT BLOCK 15 TAD KCDF20 DCA TDREAD-1 /LOAD UP FIELD 2 ISZ M2 /DONE THIS JUNK? JMP TDBOOT /GO DO FIELD 2 SDLC /STOP THE TAPE CIF CDF 0 JMP I K7605 TDM14, -154 -155 /USE RECORD 66 TDWCT, 7600 TDRQD, 0 SDSQ JMP .-1 SDRD JMP I TDRQD TDPTR=TDWCT K7600, 7600 KM26, -26 KM32, -32 KCDF20, CDF 20 M2, -2 K7605, 7605 TD77, 77 > /TD8E DECTAPE SYSTEM HANDLER /THIS HANDLER CAN DRIVE UNITS 0&1, AND IS PERMANENTLY /RESIDENT IN FIELDS 0&2. IFNZRO TD8ESYS < FIELD 0 *6607 NOPUNCH *7607 ENPUNCH SHNDLR, 0 /UNIT 0 ENTRY POINT CLA CLL JMP SHND2 C3, 3 S70, 70 SDTA1, 0 /UNIT 1 ENTRY CLA CLL CML SC1000, TAD SDTA1 /DOUBLES AS CONSTANT 1000 DCA SHNDLR /GET ARGS AT SHNDLR SHND2, RAR /UNIT # DCA SUNIT RDF /SETUP FOR EXIT TAD S6203 DCA EFLD TAD I SHNDLR /FUNCTION WORD SDLD /PUT IT IN DATA EGISTER AND S70 /SDLD DOES NOT 0 AC..GET FIELD TAD S6203 /CIF CDF N FOR TRANSFER FIELD DCA TFLD ISZ SHNDLR TAD I SHNDLR /BUFFER ADDRESS DCA BPTR ISZ SHNDLR TAD I SHNDLR /BLOCK #. TIMES 2 FOR REAL # CLL RAL DCA BLOCK ISZ SHNDLR /POINT TO ERROR EXIT CIF CDF 20 /PUT UNIT # INTO FIELD 2 TAD SUNIT DCA I SUNIT2 JMP F2SET /TO FIELD 2 FOR INIT. F1GO, SDRD /INITIAL DIRECTION TO LINK RAR JMP RGO RENTER, TAD BPTR /DONE THIS BLOCK..NEXT ADDRESS TAD SC200 DCA BPTR ISZ BLOCK /NEXT TAPE BLOCK..CAN'T SKIP CLL CML /FORCE FORWARD MOTION RGO, CLA CML RTR /LINK TO MOTION BIT TAD SC1000 TAD SUNIT SDLC /MOVE THE TAPE SDSQ JMP .-1 SDRD /KNOCK DOWN QUAD FLAG SDSQ JMP .-1 SDRD /THIS IS NEEDED, ELSE TIME ERROR!!! SRCH, SDSS /WAIT FOR A BLOCK MARK JMP .-1 SDRC /GET MARK TRACK BITS CLL RTL /DIRECTION TO LINK AND SC374 TAD SM110 /IS IT A N END ZONE? SNA JMP SENDZ /YES TAD SM20 /MAYBE A BLOCK MARK? SZA CLA JMP SRCH /NEITHER..KEEP GOING SDRD /READ THE BLOCK # SZL /IF REVERSE, LOOK 3 AHEAD OF TARGET TAD C3 CMA TAD BLOCK CMA SNA /IS IT THE RIGHT ONE? JMP FOUND /YES SM110, CLA SNA SZL /SNA SUPERFLUOUS..ONLY SZL VALID JMP SRCH /HEADED FOR IT..KEEP GOING SENDZ, SDRC CLL RTL SZL CLA /IF IN END ZONE FORWARD, GIVE ERROR JMP RGO CIF 20 /IF IT IS REALL END ZONE, AN ERROR JMP ERROR FOUND, SZL CLA /RIGHT BLOCK..HOW ABOUT DIRECTION? JMP RGO /WRONG..EXECUTE TURNAROUND TAD BPTR TFLD, HLT /GETS CIF CDF N CIF 20 JMP RDWT /LET'S TRANSFER DATA SEXIT, ISZ SHNDLR /NORMAL RETURN SEREX, TAD SUNIT /STOP THE TAPE SDLC CML CLA RAR /EITHER 0 OR 4000 IN AC ON RETURN EFLD, HLT JMP I SHNDLR BPTR=7755 BLOCK=7754 SUNIT=SDTA1 S6203, 6203 SC200, 200 SC374, 374 SM20, -20 SUNIT2, SXUNIT FIELD 2 *7600 XPTR, 0 /BUFFER POINTER F2SET, CLA CLL CMA RTL /3 ERROR TRIES DCA TRYCNT TAD SXUNIT /MAKE SURE TAPE IS STOPPED SDLC F26203, CIF CDF 0 SDRD /FUNCTION WORD CLL RAL AND CX7600 /PAGE COUNT DCA XPGCT SDRD DCA SXFUN /SAVE THE FUNCTION WORD JMP F1GO RDWT, DCA XPTR /SAVE NEW BUFFER ADDRESS TAD CX7600 DCA XWCNT /128 WORDS PER BLOCK REVGRD, SDSS /WAIT FOR REVERSE GUARD WORD JMP .-1 SDRC AND X77 TAD XM32 /IS IT REVERSE GUARD? SZA CLA JMP REVGRD /NO TAD SXFUN SK7700, SMA CLA /READ OR WRITE? JMP READ /READ SDRC AND C300 /ERRORS ON WRITE LOCKOUT AND TIME SZA CLA JMP ERROR JMS RDQUAD /SKIP A WORD CX7600, 7600 TAD WRLP TAD SXUNIT SDLC /TURN ON THE WRITE CLA CMA JMS WRQUAD /WRITE 7777 IN REV. CHECKSUM CLA CMA DCA SCKSUM /AND ALSO IN COMPUTE CHECKSUM WRLP, TAD I XPTR JMS WRQUAD /WRITE THE DATA ISZ XPTR X77, 77 /JUST IN CASE ISZ XWCNT /DONE 128? JMP WRLP JMS WRQUAD /WRITE AND CHECKSUM A WORD OF 0 JMS GETCHK /GET CHECKSUM JMS WRQUAD JMS WRQUAD /LET CHECKSUM GET WRITTEN RWCOM, SDST /CHECK FOR TIME AND CHECKSUM ERRORS SZA CLA JMP ERROR /NOTE THAT LINK IS OFF AT RWCOM CIF CDF 0 TAD XPGCT /FINISHED TRANSFER? TAD CX7600 /LINK GOES ON HERE SNA JMP SEXIT /YES..GETOUT DCA XPGCT JMP RENTER READ, JMS RDQUAD /SKIP CONTROL WORDS JMS RDQUAD JMS RDQUAD /GET CHECKSUM AND X77 TAD SK7700 DCA SCKSUM SRDLP, JMS RDQUAD DCA I XPTR TAD I XPTR JMS EQUFUN ISZ XPTR C300, 300 ISZ XWCNT /DONE ALL? JMP SRDLP /NO JMS RDQUAD /READ AND CHECKSUM LAST WORD JMS EQUFUN JMS RDQUAD /GET CHECKSUM AND SK7700 JMS EQUFUN JMS GETCHK JMP RWCOM ERROR, CLA CLL /THIS CAUSES SEARCH REVERSE AT RGO CIF CDF 0 ISZ TRYCNT /EXHAUSTED ERROR TRIES? JMP RGO JMP SEREX /YES..FATAL EXIT WRQUAD, 0 /WRITE A 12 BIT WORD SDSQ JMP .-1 SDLD JMS EQUFUN JMP I WRQUAD RDQUAD, 0 /READ A 12 BIT WORD SDSQ JMP .-1 SDRD JMP I RDQUAD EQUFUN, 0 /EQUIVALENCE CHECKSUM CMA DCA EQUTMP TAD EQUTMP AND SCKSUM CIA CLL RAL TAD EQUTMP TAD SCKSUM DCA SCKSUM JMP I EQUFUN GETCHK, 0 TAD SCKSUM CLL CMA RTL RTL RTL JMS EQUFUN TAD SCKSUM AND SK7700 JMP I GETCHK SXUNIT, 0 XPGCT, 0 SXFUN, 0 TRYCNT, 0 XWCNT, 0 XM32, -32 SCKSUM, 0 EQUTMP, 0 ZBLOCK 4 /USED BY BATCH MONITOR >> IFZERO TD8ESYS+LIST <XLIST> /FOLLOWING IS THE BOOTSTRAP FOR THE TD8E 12K SYSTEM IFZERO TD8ESYS+LIST <XLIST> / *7300 /7300 1312 K1000, TAD GET /PUT DRIVE IN REVERSE /7301 4312 JMS GET /LOOK FOR END ZONE /7302 4312 JMS GET /LOOK FOR 31 CODE /7303 6773 RD, SDSQ /NOW READ ALL WORDS INTO CORE /7304 5303 JMP .-1 /7305 6777 SDRD /READ 12 BIT WORD /7306 3726 DCA I WCT /AND PUT IT IN CORE /7307 2326 ISZ WCT /7310 5303 JMP RD /LOOP UNTIL FIELD 0 /7311 5732 JMP I STRT /IS LOADED, THEN START /7312 2000 GET, 2000 /7313 1300 TAD K1000 /SET MOTION &DIRECTION /7314 6774 SDLC /7315 6771 BSRCH, SDSS /HERE WAIT FOR EITHER 22 OR 31 CODE /7316 5315 JMP .-1 /22 IS END ZONE, 31 IS /7317 6776 SDRC /CODE BEFORE DATA WORD /7320 0331 AND K77 /IS THIS WHAT WE WANT? /7321 1327 TAD BM22 /THIS GETS INCREMENTED /7322 7640 SZA CLA /IF YES, RETURN. /7323 5315 JMP BSRCH /NO.KEEP LOOKING. /7324 2321 ISZ .-3 /LOOK FOR NEXT IN LIST /7325 5712 JMP I GET /7326 7354 WCT, 7354 /START LOADING CORE AT 7354 /7327 7756 BM22, -22 /THE OTHER BOOTSTRAP GETS LOADED /7330 7747 -31 /AT 7400. /7331 0077 77 /7332 7400 STRT, 7400 FIELD 0 IFZERO ROM+LIST <XLIST> IFNZRO ROM < RGO=7405 F2SET=7552 ROMFLD=70 *6607 NOPUNC *7607 ENPUNC /FOLLOWING IS CODE FOR 8K-ROM OS/8 SYSTEM. SHNDLR, 0 /UNIT 0 ENTRY CLA CLL JMP SHND2 S70, 70 S6201, 6201 SDTA1, 0 /UNIT 1 ENTRY CLA CLL CML TAD SDTA1 /GET ARDGS AT SHNDLR DCA SHNDLR SHND2, RAR /UNIT BIT IS ON LINC DCA SUNIT RDF TAD S6203 /SETUP RETURN FIELD DCA EFLD TAD I SHNDLR SDLD /STORE FUNCTION WORD IN DATA REG. AND S70 /SDLD DOESN'T CLEAR AC TAD S6201 /ISOLATE FIELD OF XFER DCA TFLD TAD TFLD DCA TFLD2 ISZ SHNDLR TAD I SHNDLR /BUFFER ADDRESS DCA BPTR ISZ SHNDLR TAD I SHNDLR /OS/8 RECORD # CLL RAL /TIMES 2 FOR ABSOLUTE BLOCK DCA BLOCK ISZ SHNDLR CDF 0 CIF ROMFLD /ROM IS IN FIELD 7 JMP I XF2SET /INITIALIZE. GET, 0 TFLD, HLT /ROUTINE TO LOAD DATA FROM BUFFER TAD I XPTR CIF ROMFLD JMP I GET PUT, 0 /PUT DATA INTO BUFFER TFLD2, HLT DCA I XPTR CIF ROMFLD JMP I PUT ERROR, CLA CLL /FORCE TURNAROUND AT RGO CIF ROMFLD ISZ TRYCNT /TRIED 3 TIMES? JMP I XRGO S6203, CIF CDF 0 JMP SEREX /YES..FATAL EXIT XRGO, RGO XF2SET, F2SET /EQUIVALENCES FOR HANDLER EQUTMP=7750 BPTR=7751 XPGCT=7752 XPTR=7753 XWCNT=7754 WRQ=7724 WRQUAD, 0 /WRITE A 12 BIT TAPE WORD CIF ROMFLD JMP WRQ CIFR, CIF ROMFLD JMP I WRQUAD RDQUAD, 0 /READ A 12 BIT DATA WORD SDSQ JMP .-1 SDRD CIF ROMFLD JMP I RDQUAD EQUFUN, 0 /EQUIVALENCE CHECKSUM CMA DCA EQUTMP TAD EQUTMP AND SCKSUM CIA CLL RAL TAD EQUTMP TAD SCKSUM DCA SCKSUM TAD EQUTMP CLL CMA CIF ROMFLD JMP I EQUFUN SEXIT, ISZ SHNDLR /NORMAL EXIT SEREX, TAD SUNIT /STOP THE DRIVE SDLC CLA CML RAR /EXIT CONDITION IN BIT 0 EFLD, HLT JMP I SHNDLR TRYCNT, 0 SXUNIT, 0 SXFUN, 0 SCKSUM, 0 BLOCK, 0 SUNIT, 0 *7420 NOPUNCH *7400 ENPUNCH /BOOTSTRAP FOR 8K-ROM SYSTEM. CDF 0 /BOOTSTRAP TO MOVE FIELD 1 TAD I ROM1 /CODE UP TO FIELD 1 CDF 10 DCA I ROM2 ISZ ROM1 NOP ISZ ROM2 NOP ISZ ROMCT JMP 7400 CIF CDF 0 /DONE SDLC /STOP THE TAPE JMP I .+1 7605 /START HER UP ROM1, 7427 /FIELD 1 CODE GETS LOADED HERE ROM2, 7647 /AND GOES UP HERE ROMCT, -130 > IFZERO ROM+LIST <XLIST> $$$$